package net.huashitong.ssydt.provider.push.service;

import net.huashitong.ssydt.provider.push.PushMessage;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2017.09.30
 */
public interface PushService {
    /**
     * 向单个用户推送消息（离线24小时）
     *
     * @param userId
     * @param pushMessage
     */
    String pushMessageToSingle(String userId, PushMessage pushMessage);

    /**
     * 向应用推送消息（离线24小时）
     *
     * @param pushMessage
     */
    String pushMessageToApp(PushMessage pushMessage);

    /**
     * 向单个用户推送消息
     *
     * @param userId
     * @param pushMessage
     * @param offlineExpireTime
     */
    String pushMessageToSingle(String userId, PushMessage pushMessage, long offlineExpireTime);

    /**
     * 向应用推送消息
     *
     * @param pushMessage
     * @param offlineExpireTime
     */
    String pushMessageToApp(PushMessage pushMessage, long offlineExpireTime);

    /**
     * 停止推送
     *
     * @param taskid
     * @return
     */
    boolean stop(String taskid);

}
